후위 표기법에서 전위 표기법으로 변환

목표

당신의 목표는 후위 표현식 (역폴란드 표기법)을 그에 해당하는 전위 표현식 (폴란드 표기법)으로 변환하는 것입니다. 이를 위해 표현식 트리를 구축하고 탐색합니다.

알고리즘

  1. 표현식 트리 생성하기: 스택을 사용하여 후위 표현식을 왼쪽에서 오른쪽으로 처리합니다.
    • 만약 피연산자 (예: A, B)를 찾으면 해당 피연산자를 루트로 하는 단일 노드 트리를 만들고 스택에 넣습니다.
    • 만약 연산자 (예: +, *)를 찾으면 스택에서 두 개의 트리를 꺼냅니다. 먼저 꺼낸 것은 오른쪽 자식 (T2)이고, 두 번째로 꺼낸 것은 왼쪽 자식 (T1)입니다. 연산자를 루트로 하는 새로운 트리를 만들어 스택에 다시 넣습니다.
  2. 전위 문자열 생성하기: 모든 토큰을 처리한 후 스택에는 완전한 표현식 트리가 남아 있습니다. 이 트리에 대해 전위 순회 (루트 → 왼쪽 → 오른쪽)를 수행하여 최종 전위 표현식을 생성합니다.

예시

후위 표현식 A B + C *에 대해 알고리즘은 다음 트리를 구성합니다:

  *
   / \
  +   C
 / \
A   B

전위 순회 결과 전위 표현식은: * + A B C.

입출력 형식

입력

토큰 규칙

출력

예제

예제 1:

5
A B + C *
* + A B C

예제 2:

7
A B C * + D /
/ + A * B C D

예제 3:

7
A B + C D - *
* + A B - C D

제한 사항

제약 조건
시간 제한1초
메모리 제한128 MiB